In Julia, il testo viene gestito tramite due entità architetturali distinte: il Carattere a 32 bit primitivo e la stringa immutabile, stringa codificata in UTF-8. A differenza di altri linguaggi in cui un carattere è una stringa di lunghezza uno, Julia considera Char un tipo numerico di prima classe che rappresenta un punto di codice Unicode.
1. Gerarchia dei tipi e memoria
Concreto Char è un tipo primitivo a $32$ bit (sottotipo di AbstractChar). Il tipo incorporato Stringa (sottotipo di AbstractString) supporta l'intero intervallo Unicode. Mentre un Char ha dimensione fissa, Stringa ha larghezza variabile; i singoli caratteri occupano da 1 a 4 byte, con il punto di transizione per ASCII che si verifica a $0x80(128)$.
2. Arithmetica e confronto
Poiché Char rappresenta un punto di codice numerico, puoi eseguire operazioni aritmetiche. Usa Int('a') per ottenere 97 e Char(97) per ottenere 'a'. I confronti lessicografici sono supportati: 'X' < 'x' è vero perché le lettere maiuscole precedono quelle minuscole nell'Unicode.
| Caratteristica | Carattere ('a') | Stringa ("a") |
|---|---|---|
| Tipo | Char | Stringa |
| Dimensione | Fissa a $32$ bit | Variabile UTF-8 |
| Mutabile | Non applicabile (tipo valore) | No (immutabile) |
Confronti concatenati come 'A' <= 'X' <= 'Y' valutano a vero o falso in base all'ordine Unicode.